package cn.demoncat.util.pay.ceb.config;

import cn.demoncat.util.io.FileUtil;
import cn.demoncat.util.lang.SystemUtil;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 配置
 * 
 * @author 延晓磊
 *
 * @since 2019年9月24日
 */
@Data
@Component
@ConfigurationProperties(prefix = "pay.ceb")
public class CebProperties {

	// CFCA密钥库 - PKCS12证书，默认 test/cert/cfca.pfx
	private String pfxPath;
	// CFCA密钥库 - PKCS12证书密码，为空时忽略证书
	private String pfxPwd;

	// 光大银行密钥目录（自动分配，不需要配置）：部署 = /webapps/lib/cebkeygm/，开发 = test/cebkeygm/
	private String keyPath;
	// 光大银行地址
	private String url = "https://111.205.51.133:8765";

	// 商户机构号
	private String instId = "a024";
	// 商户名称
	private String instName;
	// 商户监管账户（保证金账户）
	private String instAccount;
	// 商户资金账户（结算/转出资金）
	private String instSettleAccount;
	// 商户资金账户的支行名称
	private String instSettleAccountBank;

	// 平台交易账户（代理交易的会员账户）
	private String tradeAccount;

	/**
	 * CFCA密钥库 - PKCS12证书
	 *
	 * @return
	 */
	public String getPfxPath(boolean isProd) {
		if (StringUtils.isBlank(pfxPath)) {
			pfxPath = (isProd ? "prod/" : "test/") + "cert/cfca.pfx";
		}
		return pfxPath;
	}

	/**
	 * 光大银行密钥 - cebkeygm
	 *
	 * @return
	 */
	public String getKeyPath(boolean isProd) {
		if (StringUtils.isBlank(keyPath)) {
			if (SystemUtil.isLinux()) {
				// 部署
				keyPath = "/webapps/lib/cebkeygm/";
			}else{
				// 开发
				keyPath = FileUtil.getClassPath((isProd ? "prod/" : "test/") + "cebkeygm/");
			}
		}
		return keyPath;
	}

}
